home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er Special 20
/
64er_Magazin_Sonderheft_20_19xx_Markt__Technik_de_Side_A.d64
/
listing 13
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
3KB
|
67 lines
10 rem * sprite beispiel 2 *
20 rem noch einmal der heissluftballon
30 vic=13*4096:rem hier beginnen die vic-register
35 poke vic+21,63:rem einschalten sprite 0 bis 5
36 poke vic+33,14:rem hintergrundfarbe hellblau
37 poke vic+23,3:rem sprite 0 und 1 in y verdoppeln
38 poke vic+29,3:rem und in x
40 poke 2040,192:rem spritezeiger 0 auf block 192
50 poke 2041,193:rem spriteyeiger 1
60 poke 2042,192:rem spritezeiger 2
70 poke 2043,193:rem spritezeiger 3
80 poke 2044,192:rem spritezeiger 4
90 poke 2045,193:rem spritezeiger 5
100 poke vic+4,30:rem x-position sprite 2
110 poke vic+5,58:rem y-position sprite 2
120 poke vic+6,65:rem x-position sprite 3
130 poke vic+7,58:rem y-position sprite 3
140 poke vic+8,100:rem x-position sprite 4
150 poke vic+9,58:rem y-position sprite 4
160 poke vic+10,100:rem x-position sprite 5
170 poke vic+11,58:rem y-position sprite 5
175 print"[147]"tab(15)"dies sind 2 hires-sprites";
176 printtab(55)"einer ueber dem anderen"
180 poke vic,100:rem x-position sprite 0
190 poke vic+1,100:rem und y-position
200 poke vic+2,100:rem x-position sprite 1
210 poke vic+3,100:rem y-position sprite 1
220 poke vic+39,1:rem farbe sprite 0
230 poke vic+41,1:rem farbe sprite 2
240 poke vic+43,1:rem farbe sprite 4
250 poke vic+40,6:rem farbe sprite 1
260 poke vic+42,6:rem farbe sprite 3
270 poke vic+44,6:rem farbe sprite 5
280 for x=192 to 193:rem spritedefinitionen
290 for y=0 to 63:rem bytezaehler
300 read a:rem spritedaten lesen
310 poke x*64+y,a:rem und eintragen
320 next y,x
330 dx=1:dy=1
340 x=peek(vic):rem x-position sprite 0 pruefen
350 y=peek(vic+1):rem y-position testen
360 if y=50 or y=200 then dy=-dy:rem bei randposition dy umkehren
380 if x=24 and (peek(vic+16)and 1)=0 then dx=-dx:rem wenn sprite
390 rem am linken rand (x<24 und msb=0) dann dx umkehren
400 if x=40 and (peek(vic+16)and 1)=1 then dx=-dx:rem wenn sprite
410 rem am rechten rand (x=40 und msb=1) dann dx umdrehen
420 if x=255 and dx=1 then x=-1:side=3
430 rem umschalten auf andere bildschirmseite
440 if x=0 and dx=-1 then x=256:side=0
450 rem umschalten auf andere bildschirmseite
460 x=x+dx:rem addieren von dx zu x
470 x=x and 255:rem sicherstellen dass x im erlaubten bereich
480 y=y+dy
485 poke vic+16,side
490 poke vic,x:rem neue x-position sprite 0
500 poke vic+2,x:rem neuer x-wert sprite 1
510 poke vic+1,y:rem neuer y-wert
520 poke vic+3,y:rem neuer y-wert sprite 1
530 goto 340
600 rem ***** sprite daten *****
610 data 0,255,0,3,153,192,7,24,224,7,56,224,14,126,112,14,126,112,14,126,112
620 data 6,126,96,7,56,224,7,56,224,1,56,128,0,153,0,0,90,0,0,56,0
630 data 0,56,0,0,0,0,0,0,0,0,126,0,0,42,0,0,84,0,0,40,0,0
640 data 0,0,0,0,102,0,0,231,0,0,195,0,1,129,128,1,129,128,1,129,128
650 data 1,129,128,0,195,0,0,195,0,4,195,32,2,102,64,2,36,64,1,0,128
660 data 1,0,128,0,153,0,0,153,0,0,0,0,0,84,0,0,42,0,0,20,0,0